const express = require('express');
const route = express.Router()
const path = require('path');
const advModel = require("../db/model/advModel") //引入数据库集合
const isLoginMiddle = require('../middleware/isLoginMiddle') //引入权限控制中间件
const formidable = require('formidable') //引入fromData格式的解析器


//添加广告接口
route.post("/addAdv", isLoginMiddle, async (req, res) => {

    //formidable调用,可以接受fromData格式中携带的文件,配置对象中可以配置文件存储的位置和添加后缀名
    const form = formidable({
        uploadDir: path.resolve(__dirname, "../upload"),
        keepExtensions: true
    })

    


    //调用formidable方法后,得到一个form对象,form对象的parse方法接受req对象进行解析,解析完成后调用回调函数
    //回调函数接受3个参数,第一个是错误捕获,第二是除文件以外所有的参数组成的对象,第三个参数是上传的文件详情
    form.parse(req,  async (err, params, file) => {
        // 从解析的params中拿到前台传递的数据
        const {
            advTitle,
            advType,
            advOrder
        } = params;

        console.log(file);

        //向数据库添加数据
        try {
            await advModel.create({
                advTitle,
                advType,
                advOrder,
                advHref: "/upload/" + file.advPic.newFilename,
                addTime: new Date().toLocaleString()
            })

            //添加成功响应
            return res.send({
                code: 10000,
                msg: "添加广告成功",
                data: null
            })
        } catch (e) {
            console.log("添加广告数据库操作出现异常" + e.message);
            return res.send({
                code: 10001,
                msg: "添加广告数据库操作出现异常" + e.message,
                data: null
            })
        }


    })


})

module.exports = route